package cn.da.shuai.cool.finance.service;

import cn.da.shuai.cool.finance.model.CoolAccountsPayable;
import cn.da.shuai.cool.mybatis.service.ICoolService;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

public interface ICoolAccountsPayableService extends ICoolService<CoolAccountsPayable> {

    boolean recordPayable(CoolAccountsPayable payable);

    boolean recordPayment(String invoiceNo, BigDecimal amount, String paymentReference);

    List<CoolAccountsPayable> getOverduePayables();

    Map<String, Object> getAgingAnalysis();

    BigDecimal getVendorBalance(Long vendorId);

    List<Map<String, Object>> getPayablesTrend(LocalDate startDate, LocalDate endDate);

    Map<LocalDate, BigDecimal> getCashRequirementsForecast();

    List<CoolAccountsPayable> getPaymentPriorities();
}